export class sorting { mergesort(array: number[]) { var array: number[]; if (array.length == 0) { return "empty"; } if (array.length< 2) { return array; } var middle: number = (array.length / 2); var left: number[] = array.slice(0, middle); var right: number[] = array.slice(middle, array.length); return this.Merge(this.mergesort(left), this.mergesort(right)); } Merge(left, right) { var result = []; while (left.length && right.length) { if (left[0] <= right[0]) { result.push(left.shift()); } else { result.push(right.shift()); } } while (left.length) result.push(left.shift()); while (right.length) result.push(right.shift()); return result; } }